Ana içeriğe geç

Listr2 Nedir?

Listr2, Node.js uygulamalarında terminal tabanlı görev listelerini yönetmek için kullanılan güçlü ve esnek bir kütüphanedir. Güzel terminal çıktıları ve zengin özellikler sunar.

import { Listr } from 'listr2';

const tasks = new Listr(
[
{
title: 'Bağımlılıkları Yükle',
task: () => installDependencies()
},
{
title: 'Dosyaları Derle',
task: (ctx, task) => {
return task.newListr([
{
title: 'CSS Derleme',
task: () => compileCss()
},
{
title: 'JavaScript Derleme',
task: () => compileJs()
}
])
}
}
],
{
concurrent: false,
exitOnError: true
}
);

ipucu

Listr2'yi projenize eklemek için npm install listr2 komutunu kullanabilirsiniz.

Temel Özellikler

  • İç içe görev listeleri oluşturabilme
  • Paralel görev çalıştırma desteği
  • Özelleştirilebilir renderer'lar
  • Görev bağlamı (context) paylaşımı
  • Zengin hata yönetimi
  • TypeScript desteği
  • Görev durumu izleme

Önemli Nokta: Listr2, orijinal Listr kütüphanesinin modern bir yeniden yazımıdır ve TypeScript ile tam uyumluluk sunar. — Listr2'nin ayırt edici özelliği


Renderer Tipleri

  • Default: Varsayılan terminal gösterimi
  • Silent: Sessiz çalışma modu
  • Simple: Basitleştirilmiş çıktı
  • Verbose: Detaylı görev bilgisi
  • Test: Test ortamları için özel renderer
bilgi

Renderer'lar, farklı kullanım senaryolarına göre görev çıktılarını özelleştirmenize olanak tanır.

Gelişmiş Özellikler

  1. Bağlam Yönetimi

    • Görevler arası veri paylaşımı
    • Dinamik görev oluşturma
    • Alt görevlere bağlam aktarımı
  2. Hata Yönetimi

    • Özelleştirilebilir hata işleme
    • Yeniden deneme mekanizması
    • Hata durumunda atlama seçeneği
tehlike

Paralel görev çalıştırma kullanırken kaynak kullanımına dikkat edin.


Kullanım Örnekleri

const tasks = new Listr([
{
title: 'Veritabanı Yedekleme',
task: async (ctx, task) => {
task.output = 'Yedekleme başlatılıyor...';
await backupDatabase();
ctx.backup = true;
}
}
], {
renderer: 'verbose'
});

Listr2 vs Diğer Alternatifler

  • Ora ile karşılaştırıldığında daha kapsamlı görev yönetimi
  • Inquirer ile birlikte kullanılabilme
  • CLI uygulamaları için optimize edilmiş yapı
  • Modern JavaScript/TypeScript özellikleri

Özetle, Listr2, modern CLI uygulamaları için görev listesi yönetiminde güçlü ve esnek bir çözüm sunmaktadır. TypeScript desteği, zengin özellik seti ve özelleştirilebilir yapısı ile özellikle karmaşık görev otomasyonları için ideal bir seçenektir.